package br.com.fogas.webservice.parser.notafiscal;

import java.math.BigDecimal;

import br.com.fogas.utils.FogasUtility;

public class NotaItemRequestBuilder {
	
	private NotaItemRequestBody itemRequestBody = new NotaItemRequestBody();
	
	private String posicaoSap;
	
	private String nfNum;
	
	private String nfSerie;
	
	private String material;
	
	private String cfop = "5.405";
	
	private BigDecimal quantidade;
	
	private BigDecimal valorUnitario1;
	
	private BigDecimal valorUnitario2;
	
	private String unidade;
	
	private BigDecimal valorTotal;
	
	private BigDecimal valorIcms;
	
	private BigDecimal valorAliquota;
	
	public NotaItemRequestBody item() {
		itemRequestBody.setPosicaoSap(posicaoSap);
		itemRequestBody.setNfNum(nfNum);
		itemRequestBody.setNfSerie(nfSerie);
		itemRequestBody.setMaterial(material);
		itemRequestBody.setCfop(cfop);
		itemRequestBody.setQuantidade(FogasUtility.sap.convertIntegerForSAP_10Digits(quantidade.intValue()));
		itemRequestBody.setValorUnitario1(FogasUtility.sap.convertDecimalForSAP(valorUnitario1.doubleValue()));
		itemRequestBody.setValorUnitario2(FogasUtility.sap.convertDecimalForSAP(valorUnitario2.doubleValue()));
		itemRequestBody.setUnidade(unidade);
		itemRequestBody.setValorTotal(FogasUtility.sap.convertDecimalForSAP(valorTotal.doubleValue()));
		itemRequestBody.setValorIcms(FogasUtility.sap.convertDecimalForSAP(valorIcms.doubleValue()));
		itemRequestBody.setValorAliquota(FogasUtility.sap.convertDecimalForSAP(valorAliquota.doubleValue()));
		return itemRequestBody;
	}

	public NotaItemRequestBuilder posicaoSap(String posicaoSap) {
		this.posicaoSap = posicaoSap;
		return this;
	}

	public NotaItemRequestBuilder nfNum(String nfNum) {
		this.nfNum = nfNum;
		return this;
	}

	public NotaItemRequestBuilder nfSerie(String nfSerie) {
		this.nfSerie = nfSerie;
		return this;
	}

	public NotaItemRequestBuilder material(String material) {
		this.material = material;
		return this;
	}

	public NotaItemRequestBuilder quantidade(BigDecimal quantidade) {
		this.quantidade = quantidade;
		return this;
	}

	public NotaItemRequestBuilder valorUnitario(BigDecimal valorUnitario) {
		this.valorUnitario1 = valorUnitario;
		this.valorUnitario2 = valorUnitario;
		return this;
	}

	public NotaItemRequestBuilder unidade(String unidade) {
		this.unidade = unidade;
		return this;
	}

	public NotaItemRequestBuilder valorTotal(BigDecimal valorTotal) {
		this.valorTotal = valorTotal;
		return this;
	}

	public NotaItemRequestBuilder valorIcms(BigDecimal valorIcms) {
		this.valorIcms = valorIcms;
		return this;
	}

	public NotaItemRequestBuilder valorAliquota(BigDecimal valorAliquota) {
		this.valorAliquota = valorAliquota;
		return this;
	}
}
